﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;
using BusinessObjects.BO_GetObjects;
using DigiLib;

public partial class controls_admin_Trash : Admin_Controls_Base {
    string type;
    protected void Page_Load(object sender, EventArgs e) {
        try {
            base.removeHGC(divMessage);
            type = base.getRequest("type", string.Empty);
            ddlCategory.SelectedValue = type;
            if (!IsPostBack) {
                loadData();
            }
        } catch (Exception ex) {
            divMessage.InnerHtml = MessageBox.Error("Lỗi", "Phát sinh lỗi như sau: " + ex.Message);
        }
    }
    protected void btnRestore_Click(object sender, EventArgs e) {
        try {
            string message = string.Empty;
            foreach (RepeaterItem item in rptData.Items) {
                CheckBox cboSelect = item.FindControl("cboSelect") as CheckBox;
                if (cboSelect.Checked) {
                    HiddenField hdfCategory = (HiddenField)item.FindControl("hdfCategory");
                    HiddenField hdfID = (HiddenField)item.FindControl("hdfID");
                    if (!BO_cms.Trash_Restore(hdfCategory.Value, Convert.ToInt32(hdfID.Value)))
                        message += ((Literal)item.FindControl("ltrCategory")).Text + ",";
                }
            }
            if (!string.IsNullOrEmpty(message))
                divMessage.InnerHtml = MessageBox.Warning("Cảnh Báo", "Những bản ghi sau chưa thể khôi phục: " + message.Substring(message.Length - 1));
            else
                divMessage.InnerHtml = MessageBox.Success("Thông Báo", "Đã khôi phúc các bản ghi được chọn.");
            loadData();
        } catch (Exception ex) {
            divMessage.InnerHtml = MessageBox.Error("Lỗi", "Phát sinh lỗi như sau: " + ex.Message);
        }
    }
    protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e) {
        Response.Redirect(base.removeRequest(new string[] { "k", pagerContainer.ClientID, "type" }) + "&type=" + ddlCategory.SelectedValue);
    }
    protected void loadData() {
        try {
            if (ddlCategory.SelectedIndex <= 0) ObjDT = BO_cms.Trash_Select_All(Keyword, base.Cur_page(pagerContainer), base.Page_size);
            else ObjDT = BO_cms.Trash_Select(Keyword, ddlCategory.SelectedValue, base.Cur_page(pagerContainer), base.Page_size);
            base.bindRepeater(rptData, ObjDT, divMessage, pagerContainer);
        } catch (Exception ex) {
            divMessage.InnerHtml = MessageBox.Error("Lỗi", "Phát sinh lỗi như sau: " + ex.Message);
        }
    }
    protected void btnDeleteAll_Click(object sender, EventArgs e) {
        try {
            string message = string.Empty;
            foreach (RepeaterItem item in rptData.Items) {
                CheckBox cboSelect = item.FindControl("cboSelect") as CheckBox;
                if (cboSelect.Checked) {
                    HiddenField hdfCategory = (HiddenField)item.FindControl("hdfCategory");
                    HiddenField hdfID = (HiddenField)item.FindControl("hdfID");
                    if (!BO_cms.Trash_Delete(hdfCategory.Value, Convert.ToInt32(hdfID.Value)))
                        message += ((Literal)item.FindControl("ltrCategory")).Text + ",";
                }
            }
            if (string.IsNullOrEmpty(message))
                divMessage.InnerHtml = MessageBox.Warning("Cảnh Báo", "Những bản ghi sau chưa được xóa do có dữ liệu liên quan: " + message);
            else
                divMessage.InnerHtml = MessageBox.Success("Thông Báo", "Đã xóa toàn bộ bản ghi được chọn.");
            loadData();
        } catch (Exception ex) {
            divMessage.InnerHtml = MessageBox.Error("Lỗi", "Phát sinh lỗi như sau: " + ex.Message);
        }
    }
    protected void btnSearch_Click(object sender, EventArgs e) {
        string keyword = txtKeyword.Text.Trim();
        if (!string.IsNullOrEmpty(keyword) && !keyword.Equals("Hãy nhập từ khóa !")) {
            Response.Redirect(base.removeRequest(new string[] { "keyword", pagerContainer.ClientID }) + "&keyword=" + keyword);
        }
    }
}
